module.exports = {
    extends: [
        'stylelint-config-standard', // 配置stylelint拓展插件
        //'stylelint-config-standard-scss', // 配置stylelint scss插件
        'stylelint-config-recommended-vue/scss', // 配置 vue 中 scss 样式格式化
        'stylelint-config-recess-order', // 配置stylelint css属性书写顺序插件,
        'stylelint-config-prettier', // 配置stylelint和prettier兼容
        'stylelint-prettier/recommended',
    ],
    overrides: [
        {
            files: ['**/*.(scss|css|vue|html)'],
            //postcss-scss
            //A SCSS parser for PostCSS.
            // This module does not compile SCSS. It simply parses mixins as custom at-rules & variables as properties, so that PostCSS plugins can then transform SCSS source code alongside CSS.
            customSyntax: 'postcss-scss',
            rules: {
                'at-rule-no-unknown': [
                    true,
                    {
                        ignoreAtRules: [
                            'extend',
                            'at-root',
                            'debug',
                            'warn',
                            'error',
                            'if',
                            'else',
                            'for',
                            'each',
                            'while',
                            'mixin',
                            'include',
                            'content',
                            'return',
                            'function',
                        ],
                    },
                ],
            },
        },
        {
            files: ['**/*.(html|vue)', '*.vue'],
            customSyntax: 'postcss-html', //postcss-html是一个postcss插件，它可以将html文件中的样式块中的CSS代码提取出来进行处理，这样可以使CSS代码更加集中、维护更简单。
        },
    ],
    ignoreFiles: [
        '**/*.js',
        '**/*.jsx',
        '**/*.tsx',
        '**/*.ts',
        '**/*.json',
        '**/*.md',
        '**/*.yaml',
    ],
    plugins: ['stylelint-prettier'],
    /**
     * null  => 关闭该规则
     * always => 必须
     */
    rules: {
        // 开启 Prettier 自动格式化功能
        'prettier/prettier': true,
        //设置选择器的最多数量
        'selector-max-compound-selectors': 15,
        //设置最多一个标签选择器
        'selector-max-type': 1,
        'value-keyword-case': null, // 在 css 中使用 v-bind，不报错
        'no-descending-specificity': null, // 禁止在具有较高优先级的选择器后出现被其覆盖的较低优先级的选择器
        'function-url-quotes': 'always', // 要求或禁止 URL 的引号 "always(必须加上引号)"|"never(没有引号)"
        'no-empty-source': null, // 关闭禁止空源码
        'selector-class-pattern': null, // 关闭强制选择器类名的格式
        'property-no-unknown': null, // 禁止未知的属性(true 为不允许)
        'value-no-vendor-prefix': null, // 关闭 属性值前缀 --webkit-box
        'property-no-vendor-prefix': null, // 关闭 属性前缀 -webkit-mask
        'selector-pseudo-class-no-unknown': [
            // 不允许未知的选择器
            true,
            {
                ignorePseudoClasses: ['global', 'v-deep', 'deep'], // 忽略属性，修改element默认样式的时候能使用到
            },
        ],
    },
}
